﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Infrastructure.Web.Services;
using Skynet.BusinessEntities;
namespace Skynet.WebFoundation.Services.Session
{
    public class SessionService : Infrastructure.Web.Services.SessionService, ISessionService
    {        
        public Guid? WorkUsuario
        {
            get
            {
                return this.GetValue<Guid?>(Constants.SessionNames.WorkUsuario, SessionSource.Session);
            }
            set
            {
                this.SetValue<Guid?>(Constants.SessionNames.WorkUsuario, value, SessionSource.Session);
            }
        }


        public Guid? ExamByCustomerId
        {
            get
            {
                return this.GetValue<Guid?>(Constants.SessionNames.ExamByCustomerId, SessionSource.Session);
            }
            set
            {
                this.SetValue<Guid?>(Constants.SessionNames.ExamByCustomerId,value,  SessionSource.Session);
            }
        }


        public Guid RuntimeExamByCustomerId
        {
            get
            {
                return this.GetValue<Guid>(Constants.SessionNames.RuntimeExamByCustomerId, SessionSource.Session);
            }
            set
            {
                this.SetValue<Guid>(Constants.SessionNames.RuntimeExamByCustomerId, value, SessionSource.Session);
            }
        }

        public LinkedList<BaseQuestion> RuntimeExamQuestions
        {
            get
            {
                return this.GetValue<LinkedList<BaseQuestion>>(Constants.SessionNames.RuntimeExamQuestions, SessionSource.Session);
            }
            set
            {
                this.SetValue<LinkedList<BaseQuestion>>(Constants.SessionNames.RuntimeExamQuestions, value, SessionSource.Session);
            }
        }


        public int RuntimeExamQuestionPosition
        {
            get
            {
                return this.GetValue<int>(Constants.SessionNames.RuntimeExamQuestionPosition, SessionSource.Session);
            }
            set
            {
                this.SetValue<int>(Constants.SessionNames.RuntimeExamQuestionPosition, value, SessionSource.Session);
            }
        }
        public Guid? DesignExamId
        {
            get
            {
                return this.GetValue<Guid?>(Constants.SessionNames.DesignExamId, SessionSource.Session);
            }
            set
            {
                this.SetValue<Guid?>(Constants.SessionNames.DesignExamId, value, SessionSource.Session);
            }
        }
        public Guid? CustomerId
        {
            get
            {
                var customerid = this.GetValue<Guid?>(Constants.SessionNames.CustomerId, SessionSource.Session);
                return customerid;
            }
            set
            {
                this.SetValue<Guid?>(Constants.SessionNames.CustomerId, value, SessionSource.Session);
            }
        }
        public Guid? DesignCategoryExamId {
            get { return this.GetValue<Guid?>(Constants.SessionNames.DesignCategoryExamId, SessionSource.Session); }
            set { this.SetValue<Guid?>(Constants.SessionNames.DesignCategoryExamId, value, SessionSource.Session); }
        }
        public Guid? DesignQuestionId {
            get { return this.GetValue<Guid?>(Constants.SessionNames.DesignQuestionId, SessionSource.Session); }
            set { this.SetValue<Guid?>(Constants.SessionNames.DesignQuestionId, value, SessionSource.Session); }
        }

        public Guid? DesignAlternativeId
        {
            get { return this.GetValue<Guid?>(Constants.SessionNames.DesignAlternativeId, SessionSource.Session); }
            set { this.SetValue<Guid?>(Constants.SessionNames.DesignAlternativeId, value, SessionSource.Session); }
        }
    }
}
